@collection_id is %NULL, this is equivalent to a plain ref name string (not a
refspec; no remote name is included), which can be used for non-P2P
operations.</doc>
- <return-value transfer-ownership="full">
+ <return-value transfer-ownership="full" nullable="1">
<doc xml:space="preserve">a new #OstreeCollectionRef</doc>
<type name="CollectionRef" c:type="OstreeCollectionRef*"/>
</return-value>
+++ /dev/null
-// Based on a file generated by gir. Changes are marked below.
-use ffi;
-use glib::translate::*;
-use glib_ffi;
-use gobject_ffi;
-use std::hash;
-use std::mem;
-use std::ptr;
-
-glib_wrapper! {
- #[derive(Debug, PartialOrd, Ord)]
- pub struct CollectionRef(Boxed<ffi::OstreeCollectionRef>);
-
- match fn {
- copy => |ptr| gobject_ffi::g_boxed_copy(ffi::ostree_collection_ref_get_type(), ptr as *mut _) as *mut ffi::OstreeCollectionRef,
- free => |ptr| gobject_ffi::g_boxed_free(ffi::ostree_collection_ref_get_type(), ptr as *mut _),
- get_type => || ffi::ostree_collection_ref_get_type(),
- }
-}
-
-impl CollectionRef {
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- pub fn new<'a, P: Into<Option<&'a str>>>(collection_id: P, ref_name: &str) -> CollectionRef {
- let collection_id = collection_id.into();
- let collection_id = collection_id.to_glib_none();
- unsafe {
- from_glib_full(ffi::ostree_collection_ref_new(collection_id.0, ref_name.to_glib_none().0))
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn equal(&self, ref2: &CollectionRef) -> bool {
- unsafe {
- // CHANGE: both instances of *mut to *const
- from_glib(ffi::ostree_collection_ref_equal(ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer, ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(ref2).0 as glib_ffi::gconstpointer))
- }
- }
-
- #[cfg(any(feature = "v2018_6", feature = "dox"))]
- fn hash(&self) -> u32 {
- unsafe {
- // CHANGE: *mut to *const
- ffi::ostree_collection_ref_hash(ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer)
- }
- }
-}
-
-impl PartialEq for CollectionRef {
- #[inline]
- fn eq(&self, other: &Self) -> bool {
- self.equal(other)
- }
-}
-
-impl Eq for CollectionRef {}
-
-impl hash::Hash for CollectionRef {
- #[inline]
- fn hash<H>(&self, state: &mut H) where H: hash::Hasher {
- hash::Hash::hash(&self.hash(), state)
- }
-}
--- /dev/null
+// Based on a file generated by gir. Changes are marked below.
+use ffi;
+use glib::translate::*;
+use glib_ffi;
+use gobject_ffi;
+use std::hash;
+use std::mem;
+use std::ptr;
+
+glib_wrapper! {
+ #[derive(Debug, PartialOrd, Ord)]
+ pub struct CollectionRef(Boxed<ffi::OstreeCollectionRef>);
+
+ match fn {
+ copy => |ptr| gobject_ffi::g_boxed_copy(ffi::ostree_collection_ref_get_type(), ptr as *mut _) as *mut ffi::OstreeCollectionRef,
+ free => |ptr| gobject_ffi::g_boxed_free(ffi::ostree_collection_ref_get_type(), ptr as *mut _),
+ get_type => || ffi::ostree_collection_ref_get_type(),
+ }
+}
+
+impl CollectionRef {
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ // CHANGE: return type CollectionRef to Option<CollectionRef>
+ pub fn new<'a, P: Into<Option<&'a str>>>(collection_id: P, ref_name: &str) -> Option<CollectionRef> {
+ let collection_id = collection_id.into();
+ let collection_id = collection_id.to_glib_none();
+ unsafe {
+ from_glib_full(ffi::ostree_collection_ref_new(collection_id.0, ref_name.to_glib_none().0))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn equal(&self, ref2: &CollectionRef) -> bool {
+ unsafe {
+ // CHANGE: both instances of *mut to *const
+ from_glib(ffi::ostree_collection_ref_equal(ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer, ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(ref2).0 as glib_ffi::gconstpointer))
+ }
+ }
+
+ #[cfg(any(feature = "v2018_6", feature = "dox"))]
+ fn hash(&self) -> u32 {
+ unsafe {
+ // CHANGE: *mut to *const
+ ffi::ostree_collection_ref_hash(ToGlibPtr::<*const ffi::OstreeCollectionRef>::to_glib_none(self).0 as glib_ffi::gconstpointer)
+ }
+ }
+}
+
+impl PartialEq for CollectionRef {
+ #[inline]
+ fn eq(&self, other: &Self) -> bool {
+ self.equal(other)
+ }
+}
+
+impl Eq for CollectionRef {}
+
+impl hash::Hash for CollectionRef {
+ #[inline]
+ fn hash<H>(&self, state: &mut H) where H: hash::Hasher {
+ hash::Hash::hash(&self.hash(), state)
+ }
+}
+
+#[cfg(test)]
+mod tests;